Site cover image

Site icon imageSen(Qian)’s Memo

This website is Donglin Qian (Torin Sen)’s memo, especially about machine learning papers and competitive programming.

2024-ICLR-Robust Classification vis Regression-based Loss Reweighting and Label Correction

https://openreview.net/forum?id=wfgZc3IMqo

今までの損失関数修正とラベル修正を組み合わせた。その上、回帰問題とみなすことで、shifted Gaussian Label Noise Modelの知見を応用したらしい。

Introduction

古典的な手法(2019以前?)のデータ、損失、ラベルに対してそれぞれ変換を施す手法は次のSurveyにある。

📄Arrow icon of a page link2020-Survey-A Survey of Label-noise Representation Learning: Past, Present and Future

損失関数変換: Noisyなラベルの損失への寄与を減らす。学習の初期では有効だが、正しいラベルが大体訓練された後に、結局Noisy Labelがgradientの主なものを占めて、そこから性能が下がり続けてしまう。だが、学習が有意義であるepochを増やせる

ラベル変換: Noisyなラベルを正しいと思われるものに変換すること。識別器の判断結果に基づいてRe-labelingするが、

  • あまりに早い段階だと識別器自体の訓練が未熟で、正しくRe-labelingできない。
  • あまりに遅い段階だと識別器自体がノイズをも記憶してしまい、正しくRe-labelingできない。

この2つを組み合わせてみたよ。つまり、損失関数変換で有効な訓練Epochを引き延ばし、その間で十分にRe-labelingをしてもらうという算段。

後は、分類問題を回帰問題に変換して解いているらしい。

log比変換による組成データ分析

組成データとは

Wikipedia:

意味としては、加算(pertubation)、累乗、内積などを定義している空間である。

DD次元のVectorp=(p1,,pD)T\mathbf{p} = (p_1, \cdots, p_D)^T について、すべての成分が非負で、和がi=1Dpi=1\sum_{i=1}^D p_i = 1である。実質的にVectorはD1D-1次元であるし、和が固定されているVectorである

組成データは定義の通りに、制限がかかっているデータであるので、通常の統計的な手法を使用することはできない。

そのままデータの関係性があって、統計的なテク=正規化とかが使えない。何かしらの数学的な変換を施すことで正規化ができるような通常のデータに変換したいというのがモチベ。

ちなみにモチベとしては、Labelの各成分の和が必ず1になるので、それって組成データじゃないか!?ということ

Log比変換

組成データの各組成の相関情報には、何倍かという量が重要。それを扱うのに

  1. log比変換で組成データを扱うことで、制限がない普通のデータと同じように見なす。
  2. 通常の統計的なテクニックを使い、変換した後のデータを見る。
  3. 逆変換を行って、組成データの世界に戻す。

という流れを提示した。特に組成データの統計モデリングは変換されたデータがLogistic Normal Distributionとなることを仮定している。以下の形の分布らしい。

α>0,11+(x/α)β\alpha > 0, \frac{1}{1 + (x / \alpha)^{- \beta}}
Image in a image block

どう変換するのか

組成データから制限がないような空間に変換するのはいろいろあるが、この論文ではlogによる変換に着目する。

Wikipedia:

Additive Log-ratio(alr) transform(加法対数比)

以下のように、例えば最後の要素との比を計算し、対数をとる。割る要素は最後のものではなくてもよく、適当に選べばよい。ただ、非対称性=どのデータを選んだのかによって変換先が結構違ってくる、を持ってしまう。分布が非対称だと、うまく正規化できない

alr(p)=log((p1,,pD1)T/pD),SDRD1alr(\mathbf{p}) = \log((p_1, \cdots, p_{D-1})^T / p_D), S^D \to \mathbb{R}^{D-1}
Centered Log-ratio(clr) transform(中心対数比)

gm()gm()は相乗平均である。

clr(p)=log((p1,,pD)T/gm(p)),SDRDclr(\mathbf{p}) = \log((p_1, \cdots, p_{D})^T / gm(\mathbf{p})), S^D \to \mathbb{R}^{D}

計算を進めてlogをほどくと、以下のようになり、和が0になるという素晴らしい性質がある。つまり変換先もD1D-1次元であるといえる(和が0という制約が残るので)。なので、RD\mathbb{R}^Dとあるが線形空間として同型なのはRD1\mathbb{R}^{D-1}なのが内実。

そのうえ、幾何平均なので、どのデータを選ぶも何もなく、対称性を持つ

clr(p)=log((p1,,pD)T)(1Di=1Dlogpi)1clr(\mathbf{p}) = \log((p_1, \cdots, p_D)^T) - (\frac{1}{D} \sum_{i=1}^D \log p_i)\mathbf{1}
Isometric Log-ratio(ilr) transform(等距離対数比)

以下のように、最後の要素との比を計算し、対数をとる。VVDD次元の直交基底からD1D-1本選んで。D×(D1)D \times (D-1)の行列で、基底変換をしている。これによって、clrで同型でしかなかった線形空間にちゃんと写像できるようになった

ilr(p)=VTclr(p),SDRD1ilr(\mathbf{p}) = V^T clr(\mathbf{p}), S^D \to \mathbb{R}^{D-1}

直交基底はグラムシュミットの直交化法でもよいし、幾何的統計的な特徴を考慮して作ってもよい。

Method

全体の流れとしては、

  1. Label Smoothingを使って、普通のデータを組成データに変換する。
Image in a image block
  1. DηregD_{\eta}^{reg}は回帰に使うデータセットなので、回帰を計算する。ここで、ReweightingとLoss Correctionを両方使った手法にする
  2. 回帰の計算結果を、もともとのクラスに戻す。

組成データへの変換

まずはLabel Smoothingを行うことによって、one-hotのラベルδyΔK1\delta_y \in \Delta^{K-1}1/K1/Kが平均で分散が1の成分で構成されたuRK\mathbf{u} \in \mathbb{R}^Kと混合させる。ここで、ΔK1\Delta^{K-1}と表記したのは、ラベルのone-hotベクトルを組成データとみなしているからγ\gammaを用いて、以下のようにする。

Image in a image block

ilr変換を施しているが、行列VRK×(K1)V \in \mathbb{R} ^ {K \times (K-1)}は、以下のHelmert行列である。

Image in a image block

参考: https://www.hello-statisticians.com/explain-terms-cat/helmert1.html#Helmert

1行目はすべて1/n1/\sqrt{n}である。2行目以降は、kk行目ならばk1k-1個の1/k(k+1)1/\sqrt{k(k+1)}が続き、最後には(k1)/k(k+1)-(k-1)/\sqrt{k(k+1)}となる。

使うメリットとしては、計算が簡単、幾何学的な特性やパターンを保持するがノイズを排除しやすい。

これで、ilr(x)=VTclr(x)ilr(\mathbf{x}) = V ^ T clr(\mathbf{x})となり、RK1\mathbb{R}^{K-1}のベクトルを得られた。

回帰タスクとして解く

ノイズがあるデータt(x)=μ(x)+ϵ(x)t(x)=\mu(x)+\epsilon(x)について、ガウシアンノイズに従うという仮定の下で、最尤推定でμθ,σθ2\mu_\theta, \sigma_{\theta}^2を得る。この推定自体をDNNでやったらしい。今までは離散的に扱われていたので、このように連続値のNoiseを足すモデルはなかった

Image in a image block

この学習において、シグマの中では各データについて、1/2σθ21/2\sigma_{\theta}^2でReweightingしているといえる(各データごとに軽重をつけているわけではない!)

また、ガウス尤度モデルだと自動で2項目で正則化のような役割を果たすこともできる。

この分布を推定する操作をLoss Reweightingと定義している。なんか、伝統的なReweightingと違くね???

だが、Noisyな環境ではそれだけでは足りないのが現状。そこで、Shifted Noise Modelを提案する。μ\muが真のラベルで、観測されるのはttその間のシフトであるΔ=tμ\Delta = t - \muを考慮しなければならない

このΔ\Deltaを直接推定するのは難しい(それはそう)。代わりに、前に学習したNetworkの重みの指数移動平均=EMAをとることで、変な方向行ってもある程度抑えられるようにさせている。これは先行研究にもあったそのもの。

Image in a image block

θˉ\bar{\theta}は指数移動平均。つまり学習の式は以下の通り。モデルの指数移動平均版の予測する期待値と、今時点の期待値とのMSEをとる。本来は与えられたNoisyなラベルの位置にあたるものが指数移動平均版の予測する期待値だった。

((tΔ)μθ)22σθ2+12logσθ2(μθˉμθ)22σθ2+12logσθ2\frac{((t - \Delta) - \mu_\theta) ^ 2}{2 \sigma_\theta ^ 2} + \frac{1}{2} \log \sigma_\theta ^ 2 \to \frac{(\mu_{\bar{\theta}} - \mu_\theta) ^ 2}{2 \sigma_\theta ^ 2} + \frac{1}{2} \log \sigma_\theta ^ 2

ただしこの手法では、学習の早い段階ではwarm-upとして、t=μ+(1αe)Δt = \mu + (1 - \alpha^e) \Deltaである。α\alphaは1に近く、eeはエポック。エポックが大きくなるほど、本来のt=μ+Δt = \mu + \Deltaの式に近づくが、もともとの式では最初では与えられたNoisyなラベルのttのままにしてる

回帰の結果を分類に変換

ここまで訓練したことで、分類→回帰で何かしらの予測をすることができた。最後は分類に戻す必要がある。

y^=arg maxkilr1(μ^)\hat{y} = \argmax_k ilr^{-1}(\hat{\mu})

実験

人工的なノイズの混入は対称的なものと非対称的なもの。4割間違うCIFAR-10とかでも高い性能向上が見られた。

再ラベル付けによる正確性は高レベルな対称ノイズには無力だが、低レベルの対称ノイズではいい結果を挙げている。それでも、対称ノイズに対してロバストな実験結果になっている。